package MyLinkedList;

import java.util.*;

public class Test {

    public static void main(String[] args) {
        List<Integer> list=new LinkedList<>();
        list.add(1);//LinkedList的add方法默认是尾插
        list.add(2);
        list.add(3);
        System.out.println("=======Iterator======");
        Iterator<Integer> it=list.iterator();
        while(it.hasNext()) {
            System.out.print(it.next()+" ");
        }
        System.out.println();
        System.out.println("=======ListIterator======");
        //支持指定遍历起始位置和方向
        ListIterator<Integer> it2=list.listIterator(list.size());
        while(it2.hasPrevious()) {
            System.out.print(it2.previous()+" ");
        }
        System.out.println();
    }

    public static void main3(String[] args) {
        List<Integer> list1=new ArrayList<>();
        list1.add(1);
        list1.add(2);
        List<Integer> list2=new LinkedList<>(list1);
        System.out.println(list2);
    }

    public static void main2(String[] args) {
        //使用库中的LinkedList方法
        List<Integer> list2=new LinkedList<>();//表示将LinkedList当做List使用
        list2.add(1);//默认是尾插
        list2.add(2);
        list2.add(1,10);
        System.out.println(list2);
        Iterator<Integer> it=list2.iterator();
        while(it.hasNext()) {
            System.out.println(it.next()+" ");
        }
    }
    public static void main1(String[] args) {
        //模拟实现LinkedList
        MyLinkedList list=new MyLinkedList();
        list.addFirst(1);
        list.addFirst(2);
        list.addFirst(3);
        list.display();
        list.addLast(10);
        list.addLast(20);
        list.addLast(30);
        list.display();
        list.addIndex(0,100);
        list.addIndex(2,100);
        list.addIndex(8,100);
        list.display();
        list.remove(1);
        list.display();
        System.out.println("删除所有的100");
        list.removeAllKey(100);
        list.display();

    }
}
